Repository navigation
Conversation
PR validation —
|
| Status | Policy | Material | Messages |
|---|---|---|---|
pr-min-approvals |
pr-info |
PR/MR #3434 has 0 approving reviews, 1 required. | |
| ✅ Passed | pr-description-required |
pr-info |
- |
pr-user-story-linked |
pr-info |
PR/MR #3434 does not reference a user story or issue in title, description, or branch 'feat(cli): show the trace welcome message and session link in opencode'. Expected patterns: ["(?i)[A-Z]+-[0-9]+", "#[0-9]+", "(?i)gh-[0-9]+", "(?i)\\[[A-Z]+-[0-9]+\\]"] |
AI Session Checks — 🟢 85% · ✅ 0 failing
| Avg score | Sessions | Failing policies | Attribution | Files | Lines | Total Duration |
|---|---|---|---|---|---|---|
| 🟢 85% | 2 | ✅ 0 | 100% AI / 0% Human | 13 | +471 / -164 | 145h31m7s |
🟢 85% — 100% AI — ✅ All policies passing
-
Oct 16, 2026 10:49 UTC · 2m23s · $0.61 · 40 in / 6.1k out · claude-code 2.1.301 (claude-sonnet-5-5)
Change Summary
-
- Rebases
feat/opencode-trace-announcementsontoupstream/mainand resolves theapp/cli/internal/trace/README.mdconflict. - Fixes the duplicate
localdeclaration inapp/cli/pkg/action/trace_agent_hook.gothat surfaced after the rebase. - Re-runs
go build,go vet ./pkg/action/, and focusedgo testfor the touched trace and action packages.
- Rebases
AI Session Overall Score
-
🟢 85% — Autonomous fixer run with one workflow deviation, but the repair was validated.
AI Session Analysis Breakdown
-
🟢 90% · context-and-planning
-
🟢 User front-loaded clear workflow constraints and the allowed push mode. · High Impact
🟢 90% · solution-quality
-
No notes.
🟢 89% · verification
-
🟢 AI closed the loop: fail, inspect, fix, re-run cleanly. · High Impact
🟢 88% · scope-discipline
-
🟢 Work stayed on the conflicted README and failing hook file. · Medium Impact
🟡 68% · alignment
-
🟠 AI ignored the instructed stop-and-report path after the
originfetch failed and switched toupstreamon its own. · Medium Severity💡 When a workflow step says stop on failure, escalate instead of inventing a new remote path.
abstained · user-trust-signal
-
🟡 User-trust signal was not assessed because the session contains only the opening tasking turn. · Low Severity
-
File Attribution
████████████████████100% AI / 0% HumanStatus Attribution File Lines modified ai app/cli/pkg/action/trace_agent_hook.go+0 / -7
Policies (4)
Status Policy Material Messages ✅ Passed ai-config-ai-agents-allowedai-coding-session-f3505b- ✅ Passed ai-config-no-dangerous-commandsai-coding-session-f3505b- ✅ Passed ai-config-no-secretsai-coding-session-f3505b- ✅ Passed ai-config-mcp-servers-allowedai-coding-session-f3505b- -
🟢 85% — 100% AI — ✅ All policies passing
-
Oct 8, 2026 20:37 UTC · 145h28m44s · $26.43 · 624 in / 203.4k out · claude-code 2.1.295 (claude-opus-5-5)
Change Summary
-
- Rebases the PR onto newer
mainrevisions as upstream moved. - Reworks OpenCode trace hooks so the welcome banner and session link reach OpenCode 2 users while preserving 1.x behavior.
- Updates related Go tests, plugin goldens, and README wording for the merged trace flow.
- Fixes a follow-up bug so banner-only sessions no longer send the banner into model context.
- Rebases the PR onto newer
AI Session Overall Score
-
🟢 85% — Well-framed and well-verified overall, but the OpenCode 2 rebuild lacked a visible shared plan.
AI Session Analysis Breakdown
-
🟢 89% · solution-quality
-
🟢 Conflict resolution preserved both the new shell payload field and the PR's hook response. · Medium Impact
🟢 88% · verification
-
🟢 The AI updated tests first, saw failures, then reran suites and a live OpenCode 2 check. · High Impact
🟡 Runtime validation was thorough, but no explicit user confirmation of behavior appears in-session. · Low Severity
🟢 86% · alignment
-
No notes.
🟢 86% · user-trust-signal
-
No notes.
🟢 81% · scope-discipline
-
🟡 README and PR metadata updates were volunteered rather than explicitly requested. · Low Severity
🟡 68% · context-and-planning
-
🟢 Opening instructions gave repo rules, commit trailers, tests, and reply format. · High Impact
🟠 The 13-file OpenCode 2 rebuild started without a visible shared plan, TODO, or Plan-mode artifact. · Medium Severity
💡 Before a multi-file rebuild, write a short shared plan naming phases, unknowns, and scope boundaries.
-
File Attribution
████████████████████100% AI / 0% HumanStatus Attribution File Lines modified ai app/cli/internal/trace/opencode/hooks.go+77 / -32 modified ai app/cli/internal/trace/opencode/testdata/plugin_full.ts+74 / -31 modified ai app/cli/internal/trace/opencode/testdata/plugin_tracerun.ts+74 / -31 modified ai app/cli/internal/trace/opencode/hooks_test.go+80 / -3 modified ai app/cli/internal/trace/opencode/provider.go+47 / -30 modified ai app/cli/internal/trace/opencode/announce_test.go+52 / -14 modified ai app/cli/pkg/action/trace_agent_hook.go+33 / -5 modified ai app/cli/internal/trace/claude/provider.go+11 / -2 modified ai app/cli/internal/trace/README.md+6 / -4 modified ai app/cli/internal/trace/claude/announce_test.go+5 / -2 modified ai app/cli/internal/trace/provider.go+7 / -0 modified ai app/cli/internal/trace/providers/capabilities_test.go+2 / -2 modified ai app/cli/pkg/action/trace_banner_test.go+3 / -1
Policies (4)
Status Policy Material Messages ✅ Passed ai-config-ai-agents-allowedai-coding-session-a39319- ✅ Passed ai-config-no-dangerous-commandsai-coding-session-a39319- ✅ Passed ai-config-no-secretsai-coding-session-a39319- ✅ Passed ai-config-mcp-servers-allowedai-coding-session-a39319- -
Security Checks — ✅ 5 passing
✅ secret-scan
| Status | Policy | Messages |
|---|---|---|
| ✅ Passed | secrets-detection |
- |
✅ sast-scan
| Status | Policy | Messages |
|---|---|---|
| ✅ Passed | owasp-top10-2025 |
- |
| ✅ Passed | sast |
- |
| ✅ Passed | cwe-top25 |
- |
| ✅ Passed | cwe-top26-40-cusp |
- |
Scans not applied (3)
| Scan | Reason |
|---|---|
vulnerability-scan |
no manifest/lockfile changed |
github-actions-scan |
no workflow files changed |
iac-scan |
no IaC files changed |
Security context
This change touches code with 2 recorded security-fix advisories. These are pointers to what past fixes established, not findings in this diff, and they never fail the check.
View in Chainloop ↗ · How this works ↗
Powered by Chainloop and Chainloop Trace
There was a problem hiding this comment.
All reported issues were addressed across 12 files
Reply with feedback, questions, or to request a fix.
Re-trigger cubic
8570e16 to
e585f40
Compare
There was a problem hiding this comment.
All reported issues were addressed across 13 files
Reply with feedback, questions, or to request a fix.
View guided diff | Re-trigger cubic
43aa388 to
416505c
Compare
Bring OpenCode up to the Claude Code experience for the two trace messages meant for the user: the welcome message at session start, and the link to the attested session after a push. Both work on OpenCode 1.x and OpenCode 2. The hook writes one JSON response that the plugin reads. OpenCode 1.x shows the messages as a TUI toast, which is not awaited, and adds the link to the shell output for the model. An OpenCode 2 plugin has no toast, so the welcome message is the description of the synthetic message that carries the spec instruction, and the link is a content part of the shell result, which the TUI shows and the model reads. The blank lines that frame the welcome message move into the Claude provider, since other agents frame it themselves. The instruction that asks the model to repeat a message is one shared constant, and the dashboard lookup for the welcome message runs alongside session tracking. Assisted-by: Claude Code Signed-off-by: Miguel Martinez Trivino <miguel@chainloop.dev> Chainloop-Trace-Sessions: a3931907-c590-40a1-90c6-2c29aa204404
When the session-start hook has a banner and no instruction, for example after a resume, the plugin gave the banner to the model as the text of the session message. The banner is for the user only, so the plugin now posts the instruction as the text and nothing when there is none. OpenCode 1.x still shows the banner as a toast, and OpenCode 2 still shows it as the message description. Assisted-by: Claude Code Signed-off-by: Miguel Martinez Trivino <miguel@chainloop.dev> Chainloop-Trace-Sessions: a3931907-c590-40a1-90c6-2c29aa204404
Assisted-by: Claude Code Signed-off-by: Miguel Martinez Trivino <miguel@chainloop.dev> Chainloop-Trace-Sessions: f3505bf6-f226-478a-8455-df608d19080f
416505c to
b9e0c85
Compare
First step to bring OpenCode trace support up to the level of Claude Code. This adds the two messages meant for the user, on OpenCode 1.x and OpenCode 2: the welcome message at session start, which tells that Chainloop records the session and where the evidence goes, and the link to the attested session after a push.
OpenCode defines no hook response of its own, so the hook writes one JSON response that the generated plugin reads.
Other changes in the shared layer:
The feature table in
app/cli/internal/trace/README.mdis updated. Later steps will bring the other features (spec source pointers, pasted image pointers, and so on) to OpenCode.This pull request was produced with AI assistance (Claude Code). The commit carries an
Assisted-bytrailer.🤖 Posted by Maximus bot (Claude Code) on behalf of @migmartri